home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / GDebi / SimpleGtkbuilderApp.py < prev    next >
Text File  |  2009-09-23  |  2KB  |  68 lines

  1. """
  2.  SimpleGladeApp.py
  3.  Module that provides an object oriented abstraction to pygtk and libglade.
  4.  Copyright (C) 2004 Sandino Flores Moreno
  5. """
  6.  
  7. # This library is free software; you can redistribute it and/or
  8. # modify it under the terms of the GNU Lesser General Public
  9. # License as published by the Free Software Foundation; either
  10. # version 2.1 of the License, or (at your option) any later version.
  11. #
  12. # This library is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15. # Lesser General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU Lesser General Public
  18. # License along with this library; if not, write to the Free Software
  19. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  20. # USA
  21.  
  22. import logging
  23. import os
  24. import sys
  25. import re
  26.  
  27. import gtk
  28.  
  29. # based on SimpleGladeApp
  30. class SimpleGtkbuilderApp:
  31.  
  32.     def __init__(self, path):
  33.         self.builder = gtk.Builder()
  34.         self.builder.add_from_file(path)
  35.         self.builder.connect_signals(self)
  36.         for o in self.builder.get_objects():
  37.             if issubclass(type(o), gtk.Buildable):
  38.                 name = gtk.Buildable.get_name(o)
  39.                 setattr(self, name, o)
  40.             else:
  41.                 # see LP: #402780 - sometimes this dies with broken pipe?
  42.                 try:
  43.                     logging.debug("WARNING: can not get name for '%s'" % o)
  44.                 except:
  45.                     pass
  46.  
  47.     def run(self):
  48.         """
  49.         Starts the main loop of processing events checking for Control-C.
  50.  
  51.         The default implementation checks wheter a Control-C is pressed,
  52.         then calls on_keyboard_interrupt().
  53.  
  54.         Use this method for starting programs.
  55.         """
  56.         try:
  57.             gtk.main()
  58.         except KeyboardInterrupt:
  59.             self.on_keyboard_interrupt()
  60.  
  61.     def on_keyboard_interrupt(self):
  62.         """
  63.         This method is called by the default implementation of run()
  64.         after a program is finished by pressing Control-C.
  65.         """
  66.         pass
  67.  
  68.